<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <script>

    function* test() {
      // 1个yield就是一个状态 一个yield就是代码运行节点
      //  执行一次迭代器next方法 到第一个yield
      // 发请求
      log();
      let res=yield 1;//返回值 1是对状态的描述
      // 如果想要在第二个状态调用第一个状态的数据 
      // 需要传递数据 传什么 第二个状态的res就是什么 
      // 他会作为上一个状态的结果传递给下一个状态
      console.log(res,'获取响应');
      // 
      log();
      yield 2;//返回值
      log();
      return 3;//返回值
    }
    let result = test(); //Generator{}
    // 执行第一个状态
    console.log(result.next());
    // 执行第二个状态
    console.log(result.next(100));
    // 模拟异步发请求
    function log() {
      for (let i = 1; i <= 10; i++) {
        console.log(i);
      }
    }
  </script>
</head>

<body>

</body>

</html>